main() {
  // 把函数作为参数传递
  testCallback((data) {
    print(data);
  });

  // 定义一个函数
  void Fn(String data) { 
    print("fn 函数调用了，参数是：$data");

  }
  testCallback(Fn);

// 3.定义一个函数，把函数作为参数传递
void Function(String data) fn2 = (String data) {
  print("fn2 函数调用了，参数是：$data");
};
testCallback(fn2);
}

// 1.回调函数
// 回调函数：将一个函数作为参数传递给另一个函数
// 回调函数的作用：在某个事件发生后，调用另一个函数
// 回调函数的使用场景：异步操作，事件监听，回调地狱
// 回调地狱：多个异步操作嵌套，导致代码可读性差，维护困难
// 解决回调地狱的方法：1. Promise 2. async/await
void testCallback(Function callback) {
  // 2.调用回调函数
  callback("回传的数据");
}

